-- 1.参数列表
-- 优惠券id
local voucherId = ARGV[1]
-- 用户id
local userId = ARGV[2]

-- 2.数据key
-- 库存key
local stockKey = "secKill:stock" .. voucherId
-- 订单key
local orderKey = "secKill:stock" .. voucherId

-- 3.具体业务
-- (1)判断库存是否充足 get stockKey
if tonumber(redis.call('get', stockKey)) <= 0 then
    -- 库存不足返回1
    return 1
end
-- (2)判断用户是否下单
if redis.call('sismember', orderKey, userId) == 1 then
    -- 用户已经下单了说明重复下单了，返回2
    return 2
end
-- (3)扣减库存increase by -1
redis.call('incrby', stockKey, -1)
-- (4)下单
redis.call('sadd', orderKey, userId)
return 0